Apparatuses, computer-implemented methods, and computer program products for improved model-based determinations

ABSTRACT

Methods, apparatuses, and computer program products are provided that utilize specially configured model-based trees to output data that more accurately satisfies a particular predictive task. Each model-based tree may include any number of branches partitioning an original data set into subsets for processing. Each branch may end in one or more leaf nodes, where each leaf node is associated with a data model specially configured based on a particular set of partitioned data associated with the leaf node. In this regard, the plurality of model-based trees may generate data utilized to determine and/or output preferred data for a particular user.

CROS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/193,646, filed Feb. 28, 2014, and entitled “System, Method, andComputer Program Product For Calculating An Accepted Value For APromotion”, which application is incorporated by reference herein in itsentirety.

TECHNICAL FIELD OF THE INVENTION

The present invention relates to determining an accepted value for aprovider or promotion and marketing service.

BACKGROUND

Applicant has discovered problems with current methods of pricing anddiscounting promotions. In some examples, the pricing of a promotion maybe discounted to generate sales and promote the goods or services beingsold. However, some current methods for determining an ideal discountrate of a product may be improved. Through applied effort, ingenuity,and innovation, Applicant has solved many of these identified problemsby developing a solution that is embodied by the present invention,which is described in detail below.

BRIEF SUMMARY

In general, embodiments of the present invention provided herein includesystems, methods and computer program products for the facilitation ofdetermining an accepted value of a promotion.

In some example embodiments, a method is provided for determining anideal discount rate for a promotion including receiving, via aninterface, promotion information about a promotion, wherein thepromotion information may include a plurality of promotion variablesincluding at least a promotional value. The method may includecalculating, via a processor, for each of a plurality of model-baseddecision trees, a demand value for the promotion for each of at leastone predetermined discount rate by applying the promotion variables witheach predetermined discount rate to each decision tree. Some embodimentsof the method include aggregating the demand values for each discountrate for each decision tree for the promotion variables to produce anaggregated price elasticity of demand and presenting a discountrecommendation to a user based on the aggregated price elasticity ofdemand.

In some example embodiments, the plurality of decision trees aregenerated from an original data set including a plurality of deal data,the deal data including a demand data, a price data, and datacorresponding to a plurality of predictor variables. In someembodiments, each decision tree may include a plurality of decisionpoints connected by a plurality of branches and ending at a plurality ofleaves. In some embodiments, the decision points are conditional filtersthat indicate one of the plurality of possible branches based on a valueof at least one predictor variable. In some embodiments, each decisiontree may be generated using a subset of the original data set, whereineach leaf may be a linear model made by performing a linear regressionof demand data compared to price data of a remaining subset of datacorresponding to a terminal branch.

In some further example embodiments, applying the promotion variableswith each predetermined discount rate to each tree includes determining,via a plurality of decision points, a resultant leaf for the promotionvariables at each discount rate and may include calculating the demandvalue for the promotion for each predetermined discount rate with thelinear model of the respective resultant leaf In some embodiments theoriginal data set may be divided into a training set and a test set,wherein the training set may be used to generate one of the pluralitydecision trees and the test set may be used to evaluate an overall modelof the one of the plurality of decision trees.

In some embodiments, the overall model may be evaluated using R² metricfor a predicted demand value of each deal data in the test set. In someembodiments, the original data may be received from previous promotions.In some example embodiments, the subset of the original data set may begenerated randomly for each decision tree. In some example embodiments,the subset of the original data set may be generated using randomsampling with replacement. In some embodiments, the subset of theoriginal data set may be generated using random sampling withoutreplacement. In some example embodiments, each decision point may begenerated by dividing a first remaining subset of the original data atthe predictor variable having a highest parameter instability to form aplurality of second remaining subsets. Some embodiments includegenerating each decision tree by recursively generating decision pointsfrom each remaining subset until a stopping point is reached for eachbranch. In some embodiments, the stopping point may be reached when thesecond remaining subsets have less than or equal to a minimum number ofdeal data.

Some example embodiments generate each decision point by selecting arandom subset of a first remaining subset and dividing the firstremaining subset of the original data at the predictor variable from therandom subset having a highest parameter instability to form a pluralityof second remaining subsets. In some embodiments, each decision tree maybe generated by recursively generating decision points from eachremaining subset until a stopping point is reached for each branch. Insome embodiments, the stopping point may be reached when the secondremaining subsets have less than or equal to a minimum number of dealdata.

In some example embodiments, the discount recommendation may bepresented as a graphical representation of the demand for the promotionat each of the at least one predetermined discount rate. In someembodiments, the discount recommendation may be presented as an idealdiscount rate. In some embodiments, the at least one predetermineddiscount rate comprises at least one of 10%, 30%, 50%, and 70% discountrates.

In some further embodiments a method is provided that includesreceiving, via an interface, promotion information about a promotion. Insome embodiments of the method, the promotion information includes aplurality of promotion variables including at least a promotional value.In some embodiments, the method may include presenting a discountrecommendation for the promotion. Some embodiments of the discountrecommendation may be based on an aggregated price elasticity of demandfor the promotion. In some example embodiments, the aggregated priceelasticity of demand may be calculated by aggregating a predicted demandfor the promotion at each of a number of predetermined discount ratesfor each of a plurality of model-based decision trees.

In some further example embodiments, an apparatus may be provided thatincludes at least a processor and a memory associated with the processorhaving computer coded instructions therein. In some embodiments thecomputer instructions may be configured to, when executed by theprocessor, cause the apparatus to receive, via an interface, promotioninformation about a promotion. In some example embodiments, thepromotion information includes a plurality of promotion variablesincluding at least a promotional value. In some embodiments, thecomputer instructions may further cause the apparatus to calculate, foreach of a plurality of model-based decision trees, a demand value forthe promotion for each of at least one predetermined discount rate byapplying the promotion variables with each predetermined discount rateto each decision tree. Some embodiments of the apparatus may futheraggregate the demand values for each discount rate for each decisiontree for the promotion variables to produce an aggregated priceelasticity of demand. In some embodiments, the apparatus may present adiscount recommendation to a user based on the aggregated priceelasticity of demand.

In some embodiments, the plurality of decision trees are generated froman original data set including a plurality of deal data. In someembodiments, the deal data may include a demand data, a price data, anddata corresponding to a plurality of predictor variables. In someembodiments, each decision tree may include a plurality of decisionpoints connected by a plurality of branches and ending at a plurality ofleaves. In some embodiments, the decision points may be conditionalfilters that indicate one of the plurality of possible branches based ona value of at least one predictor variable. In some embodiments, eachdecision tree may be generated using a subset of the original data set,wherein each leaf may be a linear model made by performing a linearregression of demand data compared to price data of a remaining subsetof data corresponding to a terminal branch.

Some embodiments of the apparatus may apply the promotion variables witheach predetermined discount rate to each tree by determining, via aplurality of decision points, a resultant leaf for the promotionvariables at each discount rate and calculating the demand value for thepromotion for each predetermined discount rate with the linear model ofthe respective resultant leaf. In some embodiments, the original dataset may be divided into a training set and a test set, wherein thetraining set may be used to generate one of the plurality decision treesand the test set may be used to evaluate an overall model of the one ofthe plurality of decision trees.

In some embodiments, the overall model may be evaluated using R² metricfor a predicted demand value of each deal data in the test set. In someembodiments, the original data may be received from previous promotions.In some embodiments, the subset of the original data set may begenerated randomly for each decision tree. In some example embodiments,the subset of the original data set may be generated using randomsampling with replacement. In some alternative embodiments, the subsetof the original data set may be generated using random sampling withoutreplacement.

Some embodiments of the apparatus generate each decision point bydividing a first remaining subset of the original data at the predictorvariable having a highest parameter instability to form a plurality ofsecond remaining subsets. In some embodiments, each decision tree may begenerated by recursively generating decision points from each remainingsubset until a stopping point is reached for each branch. In someembodiments, the stopping point may be reached when the second remainingsubsets have less than or equal to a minimum number of deal data.

Some embodiments of the apparatus may generate each decision point byselecting a random subset of a first remaining subset and dividing thefirst remaining subset of the original data at the predictor variablefrom the random subset having a highest parameter instability to form aplurality of second remaining subsets. In some embodiments, eachdecision tree may be generated by recursively generating decision pointsfrom each remaining subset until a stopping point is reached for eachbranch. In some embodiments, the stopping point may be reached when thesecond remaining subsets have less than or equal to a minimum number ofdeal data.

In some embodiments, the discount recommendation may be presented as agraphical representation of the demand for the promotion at each of theat least one predetermined discount rate. In some embodiments, thediscount recommendation may be presented as an ideal discount rate. Insome embodiments, the at least one predetermined discount rate comprisesat least one of 10%, 30%, 50%, and 70% discount rates.

In yet some further example embodiments, an apparatus is providedincluding at least a processor, and a memory associated with theprocessor having computer coded instructions therein. In someembodiments, the computer instructions are configured to, when executedby the processor, cause the apparatus to receive, via an interface,promotion information about a promotion. In some embodiments, thepromotion information includes a plurality of promotion variablesincluding at least a promotional value. In some embodiments, theapparatus may present a discount recommendation for the promotion. Insome embodiments, the discount recommendation may be based on anaggregated price elasticity of demand for the promotion. In someembodiments, the aggregated price elasticity of demand may be calculatedby aggregating a predicted demand for the promotion at each of a numberof predetermined discount rates for each of a plurality of model-baseddecision trees.

In yet some further example embodiments, a computer program product isprovided comprising a non-transitory computer readable medium havingcomputer program instructions stored therein. Some embodiments of theinstructions when executed by a processor may receive, via an interface,promotion information about a promotion. In some embodiments, thepromotion information includes a plurality of promotion variablesincluding at least a promotional value. Some embodiments of the computerprogram product may calculate, for each of a plurality of model-baseddecision trees, a demand value for the promotion for each of at leastone predetermined discount rate by applying the promotion variables witheach predetermined discount rate to each decision tree. Some embodimentsof the computer program product may aggregate the demand values for eachdiscount rate for each decision tree for the promotion variables toproduce an aggregated price elasticity of demand. Some embodiments maypresent a discount recommendation to a user based on the aggregatedprice elasticity of demand.

In some embodiments, the plurality of decision trees may be generatedfrom an original data set including a plurality of deal data. In someembodiments, the deal data may include a demand data, a price data, anddata corresponding to a plurality of predictor variables. In someembodiments, each decision tree may include a plurality of decisionpoints connected by a plurality of branches and ending at a plurality ofleaves. In some embodiments, the decision points may be conditionalfilters that indicate one of the plurality of possible branches based ona value of at least one predictor variable. In some embodiments, eachdecision tree may be generated using a subset of the original data set.In some embodiments, each leaf may be a linear model made by performinga linear regression of demand data compared to price data of remainingsubset of data corresponding to a terminal branch.

In some embodiments of the computer program product, applying thepromotion variables with each predetermined discount rate to each treemay include determining, via a plurality of decision points, a resultantleaf for the promotion variables at each discount rate and may includecalculating the demand value for the promotion for each predetermineddiscount rate with the linear model of the respective resultant leaf.

In some embodiments, the original data set may be divided into atraining set and a test set, wherein the training set may be used togenerate one of the plurality decision trees and the test set may beused to evaluate an overall model of the one of the plurality ofdecision trees. In some embodiments, the overall model may be evaluatedusing R² metric for a predicted demand value of each deal data in thetest set. In some embodiments, the original data may be received fromprevious promotions. In some embodiments, the subset of the originaldata set may be generated randomly for each decision tree. In someembodiments, the subset of the original data set may be generated usingrandom sampling with replacement. In some alternative embodiments, thesubset of the original data set may be generated using random samplingwithout replacement.

In some embodiments, each decision point may be generated by dividing afirst remaining subset of the original data at the predictor variablehaving a highest parameter instability to form a plurality of secondremaining subsets. Some embodiments of the computer program productgenerate each decision tree by recursively generating decision pointsfrom each remaining subset until a stopping point is reached for eachbranch. In some embodiments, the stopping point may be reached when thesecond remaining subsets have less than or equal to a minimum number ofdeal data.

In some embodiments, each decision point may be generated by selecting arandom subset of a first remaining subset and dividing the firstremaining subset of the original data at the predictor variable from therandom subset having a highest parameter instability to form a pluralityof second remaining subsets. In some embodiments, each decision tree maybe generated by recursively generating decision points from eachremaining subset until a stopping point may be reached for each branch.In some embodiments, the stopping point may be reached when the secondremaining subsets have less than or equal to a minimum number of dealdata.

In some embodiments, the discount recommendation may be presented as agraphical representation of the demand for the promotion at each of theat least one predetermined discount rate. In some embodiments, thediscount recommendation may be presented as an ideal discount rate. Insome embodiments, the at least one predetermined discount rate comprisesat least one of 10%, 30%, 50%, and 70% discount rates.

In yet some further embodiments, a computer program product is providedthat includes a non-transitory computer readable medium having computerprogram instructions stored therein. Some embodiments of theinstructions, when executed by a processor, input, via an interface,promotion information about a promotion. In some embodiments, thepromotion information includes a plurality of promotion variablesincluding at least a promotional value. Some embodiments of the computerprogram product receive a discount recommendation for the promotion. Insome embodiments, the discount recommendation may be based on anaggregated price elasticity of demand for the promotion. In someembodiments, the aggregated price elasticity of demand may be calculatedby aggregating a predicted demand for the promotion at each of a numberof predetermined discount rates for each of a plurality of model-baseddecision trees.

BRIEF DESCRIPTION OF THE DRAWINGS OF THE PRESENT INVENTION

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 is a block diagram of a system that is configured to determine anideal discount rate of a promotion, in accordance with an embodiment ofthe present invention;

FIG. 2 is a block diagram of a system that is configured to generate adecision tree, in accordance with an embodiment of the presentinvention;

FIG. 3 is a block diagram of an aggregation and evaluation system, inaccordance with an embodiment of the present invention;

FIG. 4 is a flowchart illustrating a method for recursively generatingdecision trees, in accordance with an embodiment of the presentinvention;

FIG. 5 is a flowchart illustrating a method for recursively generatingdecision trees, in accordance with an embodiment of the presentinvention;

FIG. 6 is an example of a decision tree, in accordance with anembodiment of the present invention;

FIG. 7 is a flowchart illustrating a method for generating andevaluating a decision tree, in accordance with an embodiment of thepresent invention;

FIG. 8 is a flowchart illustrating a system that is configured todetermine an ideal discount rate for a promotion, in accordance with anexample embodiment of the present invention;

FIG. 9 is a flowchart illustrating a system that is configured todetermine an ideal discount rate for a promotion, in accordance with anexample embodiment of the present invention;

FIG. 10 is a flowchart illustrating a system that is configured todetermine an ideal discount rate for a promotion, in accordance with anexample embodiment of the present invention;

FIG. 11 is a flowchart illustrating a system that is configured todetermine an ideal discount rate for a promotion, in accordance with anexample embodiment of the present invention;

FIG. 12 is a plot of discount rate vs. demand, in accordance with anembodiment of the present invention; and

FIG. 13 is a block diagram of an apparatus that may be specificallyconfigured in accordance with an example embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention now will be described more fullyhereinafter with reference to the accompanying drawings, in which some,but not all embodiments of the inventions are shown. Indeed, embodimentsof the invention may be embodied in many different forms and should notbe construed as limited to the embodiments set forth herein; rather,these embodiments are provided so that this disclosure will satisfyapplicable legal requirements. Like numbers refer to like elementsthroughout.

Terminology

As used herein, the terms “data,” “content,” “information,” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received, and/or stored in accordance with embodiments ofthe present invention. Thus, use of any such terms should not be takento limit the spirit and scope of embodiments of the present invention.Further, where a computing device is described herein to receive datafrom another computing device, it will be appreciated that the data maybe received directly from the another computing device or may bereceived indirectly via one or more intermediary computing devices, suchas, for example, one or more servers, relays, routers, network accesspoints, base stations, hosts, and/or the like, sometimes referred toherein as a “network.” Similarly, where a computing device is describedherein to send data to another computing device, it will be appreciatedthat the data may be sent directly to the another computing device ormay be sent indirectly via one or more intermediary computing devices,such as, for example, one or more servers, relays, routers, networkaccess points, base stations, hosts, and/or the like.

As used herein, the term “promotion and marketing service” may include aservice that is accessible via one or more computing devices and isoperable to provide example promotion and/or marketing services onbehalf of one or more providers that are offering one or moreinstruments that are redeemable for goods, services, experiences and/orthe like. In some examples, the promotion and marketing service may takethe form of a redemption authority, a payment processor, a rewardsprovider, an entity in a financial network, a promoter, an agent and/orthe like. As such, the service is, in some example embodiments,configured to present one or more promotions via one or moreimpressions, accept payments for promotions from consumers, issueinstruments upon acceptance of an offer, participate in redemption,generate rewards, provide a point of sale device or service, issuepayments to providers and/or or otherwise participate in the exchange ofgoods, services or experiences for currency, value and/or the like.

As used herein, the term “provider” may include, but is not limited to,a merchant, business owner, consigner, shopkeeper, tradesperson, vender,operator, entrepreneur, agent, dealer, organization or the like that isin the business of a providing a good, service or experience to aconsumer, facilitating the provision of a good, service or experience toa consumer and/or otherwise operating in the stream of commerce. Oneexample provider may be a running company that sells attire for use by aperson who runs or participates in athletic activities.

As used herein, the term “consumer” may include, but is not limited to,a client, customer, purchaser, shopper, user, or the like, who may be inthe position to or does exchange value for one or more vouchers underthe terms defined by one or promotions. For example, and using theaforementioned running company as the example provider, a consumer maybe an individual who is interested in purchasing running shoes.

As used herein, the term “promotion” may include, but is not limited to,any type of offered, presented or otherwise indicated reward, discount,coupon, credit, deal, incentive, discount, media or the like that isindicative of a promotional value or the like that upon purchase oracceptance results in the issuance of an instrument that may be usedtoward at least a portion of the purchase of particular goods, servicesand/or experiences defined by the promotion. An example promotion, usingthe aforementioned running company as the example provider, is $25 for$50 toward running shoes. In some examples, the promotion defines anaccepted value (e.g., a cost to purchase the promotion), a promotionalvalue (e.g., the value of the resultant instrument beyond the acceptedvalue), a residual value (e.g., the value upon return or upon expiry ofone or more redemption parameters), one or more redemptions parametersand/or the like. Using the running company promotion as an example, theaccepted value is $25 and the promotional value is $50. Promotionalvalue may also be referred to as the original price of the promotion. Inthis example, the residual value may be equal to the accepted value.

As used herein, the terms “discount” or “discount rate” may define thepercentage difference between the accepted value and the promotionalvalue of the promotion, such that the discount is the amount price ofthe promotion is reduced from its original, promotional value when soldat the accepted value.

Brief Overview

Methods, apparatus, and computer program products described herein areoperable for facilitating the determination of an accepted value of oneor more promotions offered by a promotion and marketing system. In someembodiments, the discount of a promotion may be calculated based on apredicted price elasticity of demand of the promotion. An ideal discountor ideal discount rate is a discount rate that produces an idealaccepted value of the promotion. Embodiments of the present inventionmay determine either or both of an ideal discount rate and an idealaccepted value of a promotion. In some embodiments, the ideal discountmay be one that maximizes revenue or maximizes profits. In someembodiments, the ideal discount may be selected to hit a predeterminedsales target for the promotion. The ideal discount may be determined bythe specific user, whether a promotion and marketing service or aprovider, and may be tuned to the specific user's needs.

All types of products, experiences, goods and services may be sold aspromotions by a promotion and marketing service. The promotion andmarketing service sells promotions at a discount rate that may bedetermined, in some embodiments, either directly or indirectly by theprice elasticity of demand of the promotion. Using the price elasticityof demand, an ideal discount rate and an ideal accepted value of thepromotion may be calculated.

Price elasticity of demand is defined as the rate at which demandchanges for a given, incremental change in price. It would beappreciated by one of ordinary skill in the art that numerous differentpromotions may have varying price elasticity of demands. Some promotionsmay be highly demanded no matter what the price or discount rate andthus a lower discount rate should be used to determine the idealaccepted value. Alternatively, some promotions may be extremely pricesensitive and may need higher discount rates to achieve the idealaccepted value because the user is particularly sensitive to the priceof the promotion.

In order to calculate the price elasticity of demand and, thereby, anideal discount or ideal accepted value, some embodiments of the presentinvention obtain predicted demands for a promotion based on variousprices by applying different discount rates to a model of the promotion.In some embodiments, the predicted demands are determined by applyingdifferent accepted values to a model of the promotion. Some embodimentsof the present invention may consider the relationship between possiblediscount rates and the predicted demands, or some embodiments mayconsider the relationship between possible accepted values and thepredicted demands. The demand for the promotion at different discountrates and/or accepted values may be used to determine an ideal acceptedvalue and thereby an associated ideal discount rate for the promotion.

Some embodiments of the present invention use a model-based (“MOB”)recursive partitioning technique to generate a model of the demand forthe promotion based on a set of original data, in order to predict thedemand for a given promotion at a number of predetermined discountrates. The model-based recursive partitioning technique may developmultiple models for a plurality of subsets of the original data. In someembodiments, the original data may be selected from a homogeneous groupof promotions, for example—food or drink promotions in Italy, in orderto ensure the accuracy of the overall model. In some furtherembodiments, the group of promotions that make up the original data maybe chosen based on the type of promotion being presently analyzed. Insome alternative embodiments, a global set of promotions are used forall models.

In some embodiments, the original data is comprised of historical datafrom a plurality of past promotions. The original data may includepredictor variables about each past promotion such as a number ofpromotions sold (e.g. demand), promotional value, and a discount rateand/or accepted value. Other examples of predictor variables include,but are not limited to, city size, weather, seasonality, commissionearned by the promotion and marketing service, importance of thepromotion, lead quality, type of promotion, an indication of a new orexisting provider, and any other feature or property that may serve todistinguish one promotion from another.

Some embodiments of the present invention develop one or more MOB treesbased on a subset of the original data. A MOB tree or decision tree isgenerated by creating a plurality of decision points that group thesubset of original data into smaller and smaller clusters based on thesimilarity of the data's respective predictor variables. Each decisionpoint receives a “branch” or cluster of data as an input, and splits thebranch across a value of one or more predictor variables. The decisionpoint then creates two branches, one on either side of the value of thepredictor variable used to split the data. This process continuesrecursively until each branch reaches a stopping point. As explained infurther detail below, some embodiments may improve the fit of the modelby setting stringent p-values for the decision points. As will bediscussed in greater detail below, the stopping points may be any of anumber of deciding factors that stop another decision point from beingformed on the particular branch. For each branch that reaches an endingpoint, a separate model or “leaf” may be generated from the remainingdata in each branch. In some embodiments the leaf model may be a linearregression model. Each linear regression model may be based on a subsetof the data that is more closely related so that the linear model moreaccurately conforms to the demand of the product over that set of data.By generating a separate model for more homogeneous subsets of theoverall data (e.g. the individual branches), the fit of the overallmodel may be improved. Likewise, a plurality of trees may be generatedfor the original data and averaged to increase the accuracy of themodel.

In some embodiments, a second subset of the original data is used todetermine the accuracy of each MOB tree. In some embodiments, theoriginal data is split into a training set and a test set by randomlysampling from the original data either with or without replacement. Insome further embodiments, new training and test sets are generated fromthe original data for each MOB tree. The training set may be used togenerate the branches and decision points, and the test set maydetermine the accuracy of the model via R² value or a similar accuracyestimate.

Some embodiments generate decision points by splitting the data across apredictor variable or variables having the greatest parameterinstability. Splitting across the greatest parameter instability allowsthe decision point to divide the data into the most homogenous groups.In some embodiments, a random subset of the predictor variables areconsidered at each decision point for the variable with the highestinstability so that, across the plurality of MOB trees, the effect ofmore divisive variables doesn't drown out the weaker predictors.

In some embodiments of the present invention, a promotion is applied via“what-if” analysis to the one or more MOB trees with one or morediscount rates to generate a predicted demand for the promotion at eachdiscount rate. Using the combined results for the demand calculated ateach discount rate by each decision tree, the system may accuratelydetermine an ideal discount rate that gives an ideal accepted value ofthe promotion (e.g. maximizes revenue).

In some embodiments, the system may be embodied as a tool and may bedesigned specifically with a particular user in mind. For example, insome embodiments, the present invention is used by or otherwiseaccessible via a promotion and marketing service. The system may be usedby the promotion and marketing service to determine an ideal discount atwhich to sell a provider's promotion. In this embodiment, the system maybe configured to give more detailed information about the priceelasticity of demand for the promotion.

In some alternative embodiments, a provider interface may be used. Theprovider interface may be configured to receive promotion informationfrom a provider, calculate the demand information remotely or receivepremade models to calculate the demand values with, and then output theinformation to the provider.

The system may output an indication of a preferred or ideal discountrate based on the predicted demand information. The output may betext-based and/or graphical and may display as much or as littleinformation as the provider or promotion and marketing service desires.

Exemplary System Architecture

Reference will now be made to several exemplary architectures of thepresent invention. FIG. 1 is a block diagram showing a system that isconfigured to determine an accepted value of a promotion. In someembodiments, a demand module 100 may receive M trees 135, 140, 150 froma tree generator module 110. The demand module 100 may also receivepromotion information 105 via a user or memory device (not pictured).The promotion information 105 may contain several promotion variablesthat, in some embodiments, include a promotional value of the promotion.In some embodiments, the promotion information 105 may include one ormore possible discount rates, or, alternatively, possible discount ratesmay be stored in the demand module. In some embodiments, a user may bepresented with an option to choose specific discount rates. Additionallyor alternatively, if no discount rates are selected, the system may usea default set of discount rates. In some embodiments, the discount ratesmay be determined from the existing discount rates in the set oforiginal data.

The demand module 100 may receive the promotion information 105 andapply the promotion information to N discount rates 125, 130. Each ofthe N discount rates combined with the promotion information may beapplied to each of M decision trees 135, 140, 150. Each decision tree135, 140, 150 in the demand module 100 generates a predicted demand 155,160, 165, 170, 175, 180 for each discount rate 125, 130 as applied tothe promotion information 105.

In some embodiments, the demand module 100 then transfers the predicteddemands 155, 160, 165, 170, 175, 180 to an aggregator module 115. Theaggregator module may combine the demand data 155, 160, 165, 170, 175,180 to determine, either directly or indirectly, a price elasticity ofdemand and provide an output 120 to the user. As discussed in greaterdetail herein, the output 120 may take any form including but notlimited to a graphical representation of an accepted value or discountrate versus demand curve for different prices, a text indication of thedemands for each discount rate or accepted value, or it may be anumerical representation of an ideal accepted value or an ideal discountrate for the promotion. The output 120 may be an exact number, a rangeof values, or a predicted value with a computed confidence interval.

FIG. 2 is a block diagram of the tree generation module 200. In someembodiments, the tree generation module is configured to generate one ormore MOB trees based on a set of original data 205. As will be explainedin greater detail herein, the tree module 200 may generate the one ormore MOB trees simultaneously or sequentially. The tree generationmodule splits the original data into a training set 210 and a test set215. The training set may be created by bootstrapping (e.g. samplingwith replacement) from the original data 205 set or by sub-sampling(e.g. sampling without replacement) from the original data. As discussedin further detail below, in some embodiments, the training set may bethe same for every tree (each tree sampled from the same set) or may begenerated anew for each tree. Beginning with the training set 210, thetree generation module 200 may create a plurality of decision points217, each decision point 220, 225, 230, 235, 245 is created by splittingthe branch or data cluster connecting the decision point to the decisionpoint above it. In some instances, the branch or data cluster may be thetraining set, as in the case of the first decision point 220, or thebranches may be a residual received dataset from the preceding decisionpoint. For example, in the embodiment shown in FIG. 2, the decisionpoint 2,1 225 receives the branch 226 from the decision point above it220. In this embodiment, the decision point 225 then splits into twobranches 227, 228, each containing a portion of the branch 226 thatentered the decision point 225.

In some embodiments, the decision points 217 split across a predictorvariable or variables that indicate high parameter instability. Asexplained in greater detail below, parameter instability of thepredictors may be computed using a class of generalized M-fluctuationtests. In some embodiments, the sup LM statistic may be used fornumerical predictor variables. In some embodiments, a χ² or chi-squaredstatistic that captures the fluctuation within each of the categories ofpredictor may be used for categorical partitioning variables. Bysplitting the data at the highest parameter instability, each decisionpoint may create two increasingly homogenous subsets of data that arethen fed into respective new decision points.

In some embodiments, the decision points 217 recursively split to createsmaller and smaller branches of data until a stopping point is reached.As described in greater detail herein, the tree generator module maydetermine for each branch individually when a stopping point has beenreached based on a set of criteria. FIG. 2 shows a final, Nth row ofdecision points having a first 235 through Pth 245 decision point as thefinal set of decision points. However, one of ordinary skill in the artwill appreciate that some embodiments of the tree models may not endwith all of the leaves on the same tier. Indeed, the decision point mayend a branch of the tree when a predetermined criterion is reached,regardless of whether the remaining branches have reached a stoppingpoint. For example, FIG. 6 shows a MOB tree having stopping points atdifferent levels of the tree. When a given branch of the tree reaches astopping point, a leaf model 240, 250, 255, 260 is generated. While theembodiment shown in FIG. 2 has four or more leaves 240, 250, 255, 260,one of ordinary skill in the art will appreciate that each tree may haveany number of leaves based on the stopping point criteria and the set ofdata being modeled.

In some embodiments, each leaf model 240, 250, 255, 260 is created usinga statistical model of the resulting data set in the given branch. Inone embodiment, as shown in FIG. 6, the leaves 635, 640, 645, 650, 655,660 may be generated with a linear regression 665. As will be explainedin further detail below, some embodiments may use more complicatedregression models, and it would be appreciated by one of ordinary skillin the art that a leaf model can use any type of model of the data thatcan be fit to the data.

FIG. 3 shows a block diagram of an aggregator module 300 in accordancewith one embodiment of the present invention. In some embodiments, theaggregator model 300 may receive predicted demand data 155, 160, 165,170, 175, 180 from the plurality of tree models. In some embodiments,the predicted demand data 155, 160, 165, 170, 175, 180 may be thepredicted demand for the promotion at one or more discount rates (shownin FIG. 1) as computed by each of the M tree models 135, 140, 150. Oncethe demand data 155, 160, 165, 170, 175, 180 is received by theaggregator module, the aggregator module combines the data to determinethe ideal discount and present an output 320 to the user.

In some embodiments of the present invention the aggregator module firstcollects every demand point for a given discount rate and compares themand combines them into an average or aggregated demand for that singlediscount rate. For example, in the embodiment shown in FIG. 3,Evaluation Module 1, 305, receives the demands for discount rate 1 foreach of the M trees 155, 165, 175 and combines them and evaluates themto determine an aggregate demand for the first discount rate. Likewise,in some embodiments, Evaluation Module N 310 combines the demand outputsfor the Nth discount rate 160, 170, 180 and combines them to form anaggregate demand for the Nth discount rate.

In some embodiments once each discount rate is independently evaluatedin Evaluation Modules 1 through N, a Combined Evaluator module 315 willaggregate and analyze the outputs from the Evaluation Modules 305, 310to determine an ideal demand and an ideal discount rate to produce thehighest revenue. In some embodiments, a predicted demand is determinedfor each potential discount rate or accepted value across multiple treemodels. Some embodiments may then average the predicted demands for eachdiscount rate across the tree models to obtain a stable estimate for thedemand at each discount rate. As discussed herein, the output may be inany form including a graphical display of a price elasticity of demand,discount rate, and/or accepted value for the promotion. In someembodiments the output may be a text-based display of the ideal discountrate and/or accepted value to arrive at the ideal accepted value of thepromotion.

In some alternative embodiments, demand information from each tree, 1through M, may be considered first, and then the results may be combinedwith the demand results from the other trees to arrive at an output ofideal discount.

Tree Generation

Reference will now be made to several embodiments of a tree modelgeneration method. The tree models may be generated recursively bysplitting the data at each decision point until a given branch of thedata has reached a stopping point. With reference to FIG. 4, anembodiment of the recursive algorithm is shown that may generate one ormore decision points. First, the algorithm may receive a branch orremaining subset of the original data 400. In the case of the firstdecision point, shown in FIG. 2 as decision point 1,1 220, the firstdecision point may receive a full training set of original data and eachsubsequent decision point receives only the remaining subset of originaldata passed along to it by the previous decision point. As noted above,the original data may be selected from a homogeneous group of promotionsin order to ensure the accuracy of the overall model. In some furtherembodiments, the group of promotions that make up the original data maybe chosen based on the type of promotion being presently analyzed. Insome alternative embodiments, a global set of promotions are used forall models.

Next the algorithm may determine the predictor variable with the highestparameter instability in the branch or remaining subset of data 405.This process may allow the decision points to split the data across themost divisive parameter or predictor variable at each decision point.The algorithm may split the remaining subset across the parameterinstability 410 and may generate two new branches using the remainingsubsets of the data on either side of the parameter instability 425,430. As noted above, numerous methods may be used to split the predictorvariables. For example, in some embodiments, parameter instability ofthe predictors may be computed using a class of generalizedM-fluctuation tests. These tests may check parameter instability in anM-estimation framework and are based on partial sum processes ofM-estimation scores for which functional central limit theorems arederived under the null hypothesis of parameter stability. These testsare discussed in Zeileis and Hornik, Generalized M-Fluctuation Tests forParameter Instability, SFB “Adaptive Information Systems and Modellingin Economics and Management Science,” June 2003, which is incorporatedby reference herein in its entirety. In some embodiments, the supLMstatistic may be used for numerical predictor variables. Based on theLagrange Multiplier test, the supLM statistic determines the supremum ofall single split LM statistics to find a split point having the idealparameter instability. The sequence of single break LM statistics can becomputed by taking the squared Euclidean norm of the empiricalfluctuation process weighted by its variance. The supLM statistic may berepresented by the equation:

$\sup_{t \in \pi}\frac{{{{efp}(t)}}_{2}^{2}}{t\left( {t - 1} \right)}$

In this embodiment epf represents the empirical fluctuation process andπ represents the interval. In some embodiments, a χ² or chi-squaredstatistic that captures the fluctuation within each of the categories ofpredictor may be used for categorical partitioning variables. Thealgorithm may then check if a stopping point has been reached in eitherof the two new branches 425, 430.

A stopping point may be any set of criteria that determines when abranch has ended including a minimum number of individual data points ina given branch or a minimum amount of variability in a given branch. Forexample, in some embodiments, if the number of promotions in a branch isbelow 700, the branch is not split further. In some embodiments, theremay be a maximum number of decision points after which the tree stopssplitting and forms leaf models. In some embodiments, a branch may notsplit further if the bonferroni-corrected p-value for the branch isabove a certain threshold. For example, in some embodiments thethreshold p-value may be 0.0001. In some embodiments, having a morestringent p-value ensures that the tree models are more stable. Thestopping point may be any set of criteria, and the generation of thebranches may stop all at once or individually as each branch reaches astopping point. In some embodiments, once a stopping point has beenreached, the specific branch generates a leaf model 435, 440, which is amodel of the data in each branch.

With reference to FIG. 5, one alternative embodiment of the treegeneration algorithm uses a random forest method of generating a MOBtree. As with the embodiment described in FIG. 4, the random forestmethod receives a remaining subset of the original data 500 from thebranch and decision point above it. Using the random forest method, someembodiments of the algorithm choose a random subset of the predictorvariables 505 to consider for parameter instability and then maydetermine the predictor variable from only that random subset of thepredictor variables that has the highest parameter instability 510. Thebranch is still split in its entirety 515 but based only on the subsetof predictor variables. This allows the algorithm to introduce morerandomness into each tree and allows less divisive and smaller but stillimportant variables to be represented in the tree models. For example,if one variable has a high degree of instability, the standard modelwould use that variable as a splitting point fairly consistently betweentree models. In the embodiments that use the random forest method, thehighly unstable variable is sometimes ignored, which allows the decisiontrees to be more random. This randomness may help increase the fit ofthe model over a large number of trees.

In some embodiments, the random forest method of FIG. 5 may then splitthe branch of data across the parameter instability 515 as in FIG. 4 andthen generate two new branches 520, 525 using the methods describedabove. In some embodiments, the model then determines whether or not astopping point has been reached for the given branch 530, 535, and ifyes, generates a leaf model 540, 545, and if no, generates a newdecision point.

FIG. 6 shows an example tree generation in accordance with oneembodiment of the present invention. The tree model 601 may generate aplurality of decision points 600 around various predictor variables ofthe original subset of data. For example, in the embodiment shown inFIG. 6, decision point 1 610 splits the data across a “city size”variable, such that city sizes less than or equal to “one” are dividedinto the left branch 602, and city sizes greater than “one” are dividedinto the right branch 603.

Each decision point may have a p-value, such as 0.001 in FIG. 6, whichrepresents the level of significance of a given variable (e.g. city sizein the first decision point 610) in creating two different subsets ofvariables (e.g. in the resultant branches) such that the price-demandrelationship may differ in the resultant branches. In decision point 2,615 the branch of “city size” data 602 from the first decision point 610is then split across an “original price” (e.g. promotional value)parameter 615. The left branch of decision point 2 615 may then reach astopping point wherein a leaf model or node 635 is created. The rightbranch of decision point 2, 615, may then create decision point 4, 625,which further filters the “original price” between less than $299.00 andgreater than $299.00. Each of the resulting branches may then reach astopping point and generates nodes 5 and 6, 640, 645.

Likewise, with the other side of the tree in the embodiment shown inFIG. 6, for city sizes greater than one, a 7^(th) decision point 620 maybe split across city sizes greater than two and less than two, but stillgreater than one from the original branch 603. The left branch ofdecision point 7, 620, may then generate leaf model 8, 650, and thegreater than 2 branch generates decision point 9, 630, and the algorithmmay then generate leaf nodes for each of the resulting branches 655,660. In some embodiments, the leaf models 605 create linear regressionsof the resulting data from each branch, such that each leaf 605 is amodel of the branch of data connected to it. For example, node 3, 635,is a model of the subset of original data that has a city size less thanor equal to one and an original price less than or equal to $160. Anexemplary linear regression 665 is indicated in the graph below eachnode in FIG. 6. Once fit, the linear regression model is used tocalculate the demand of any resulting promotion that fits the criteriaof that leaf based on the decision points above it.

In some embodiments, the linear regression model may be calculated byfinding the equation of the line y=α+/βx that fits the data mostaccurately. In some methods, this may be determined by minimizing thesum of squares for error (SSE), also known as the sum of squares of theresiduals (SSRes). SSE is calculated by the total sum of the square ofthe actual demand value minus the predicted demand value as shown in theequation:

${SSE} = {\sum\limits_{i}\left( {y_{i} - {\overset{\hat{}}{y}}_{i}} \right)^{2}}$

In this embodiment, y_(i) represents the actual demand for the i-thdiscount rate, and ŷ_(i) represents the predicted demand for the i-thdiscount rate using the tree model. The linear fit may then becalculated by substituting the linear model for the predicted demand andminimizing the equation:

$\min\limits_{\alpha,\beta}\left( {\sum\limits_{i}\left( {y_{i} - \alpha - {\beta x_{i}}} \right)^{2}} \right)$

FIG. 7 shows a flowchart of one exemplary embodiment of the treegeneration module of the present invention. The model receives theoriginal data, splits the original data into a training set and a testset 705, generates a decision tree using the training set 710, and thenuses the test set to check the accuracy of the given decision tree 715.The test set evaluates the model's accuracy through a variety ofcriteria. For example, in some embodiments the model accuracy may beevaluated based on the R² metric. Since the response variable, demand,may be continuous, the accuracy of the model may be computed using an R²metric on the predictions obtained using the test set. The test set isapplied to the tree generated by the training set as in the methodspreviously described for predicting the demand of the promotion, and thevalues of demand created by the tree for the test set are compared withactual known values of demand for the test set to determine the accuracyof the model 715. R², also known as the coefficient of determination, isdefined by the equation

${R^{2} = \left( {1 - \frac{SSE}{SSTO}} \right)},$

where SSE represents the sum of squares for error or the residual sum ofsquares, as described above, and SSTO represents the total sum ofsquares of the data set.

SSTO is represented as the sum of the squares of the actual demand valueminus the mean of the actual demand values as shown in the equation:

${SSTO} = {\sum\limits_{i}\left( {y_{i} - {\overset{¯}{y}}_{i}} \right)^{2}}$

In this embodiment, y _(i) represents the mean of actual demand values.The R² value ranges from 0 to 1 with 0 suggesting poor model performanceand 1 suggesting good model performance.

In some alternative embodiments Mean Square Error (MSE) may be used todetermine the accuracy of the model. In some embodiments, MSE may berepresented by the equation:

${MSE} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}\left( {{\overset{\hat{}}{y}}_{i} - y_{i}} \right)^{2}}}$

Where ŷ_(i) represents the predicted demand value of the i-th discountrate and y_(i) represents the actual demand value of the i-th discountrate out of a total of n predictions.

Demand Calculation

The preceding section described the various embodiments of generating atree using model-based recursive partitioning. As will now be describedin greater detail, the promotion data may be applied to each MOB tree todetermine the demand for the promotion at various predetermined discountrates. FIG. 8 shows one embodiment of the present invention wherein themodel receives promotion information 800 either from a user or via amemory or network. The model then receives a desired model data 805. Thedesired model data 805 may include a predetermined discount rate, apreferred number of tree models, or any indication of a preferredmodeling technique or method. In some embodiments, the desired modeldata 805 may be predetermined for the system, or the desired model datamay be received with the promotion information for a specific promotionin other embodiments.

The model may then receive a set of decision trees based on the originaldata 810. As noted above, the original data may be selected from ahomogeneous group of promotions in order to ensure the accuracy of theoverall model. In some further embodiments, the group of promotions thatmake up the original data may be chosen based on the type of promotionbeing presently analyzed. In some alternative embodiments, a global setof promotions are used for all models.

In some embodiments, the tree model generator may not be a part of thesystem, and the tree models may be received from a memory or network, asdiscussed below. Some alternative embodiments generate the tree modelsand apply the promotion data to the models in the same system. Eachdiscount rate may be applied to the promotion information including apromotional value of the promotion and the resulting demand for eachdiscount rate is calculated for each decision tree 815. Within eachtree, the promotion information is compared with each decision point,and the comparison follows the branches whose predictor variablescorrespond to the promotion information. Once a branch corresponding tothe promotion information terminates, the leaf/node model at the end ofthe particular branch may be used to calculate the demand for thepromotion. By applying the promotion variables to the equationrepresenting the model, a predicted demand may be determined for theparticular tree. In some embodiments, the demand for each discount rateas calculated by the respective decision trees may then be compared 820and aggregated. In some further embodiments, the demand for eachdiscount rate with respect to the other discount rates may then becompared in order to determine the ideal discount 825. The modeldetermines the total revenue expected from each given discount rate todetermine and output an ideal discount rate 830.

With reference to FIG. 9, some embodiments of the present inventiongenerate a set of decision trees themselves based on a set of originaldata 910, rather than receiving the trees separately. In thisembodiment, the model receives promotion information 900 receives a setof Desired Model Data 905 then the model generates a set of decisiontrees based on a set of original data 910. Each discount rate may beapplied to the promotion information and the resulting demand for eachdiscount rate is calculated for each decision tree 915. The demand foreach particular discount rate may be compared between the variousdecision trees 920. Then, the demand for each discount rate may becompared to the other discount rates is considered 925. In some furtherembodiments, an indication of the ideal discount rate is presented tothe user 930, as described in greater detail herein.

Combined Recursive Algorithm

Some embodiments of the present invention, as shown in FIG. 10, use arecursive algorithm to generate the MOB trees at substantially the sametime that the promotion information is applied to each tree for eachdiscount rate. Some embodiments of the present invention receive a setof original data 1000, receive a set of promotion information 1005, anda desired model data 1010, which may include a set of predetermineddiscount rates and a number of MOB trees to generate. One of ordinaryskill in the art will appreciate that the various inputs, 1000, 1005,1010, may be received in any order from any one or more sources,including stored within the apparatus itself.

The model may then develop a decision tree using a subset of theoriginal data as in the methods previously discussed 1015. The model maythen iteratively apply each discount rate 1020 of the predetermineddiscount rates to the tree. As previously discussed, in someembodiments, the discount rates may be stored or predetermined by thesystem or received as an input from the user. In some embodiments, auser may be presented with an option to choose specific discount rates.Additionally or alternatively, if no discount rates are selected, thesystem may use a default set of discount rates. In some embodiments, thediscount rates may be determined from the existing discount rates in theset of original data. For each discount rate that is applied, the modelmay compute the expected demand for the particular discount ratecurrently being analyzed 1025.

Once every discount rate has been applied 1030 to the promotioninformation for a given decision tree, the process may continue 1035 andgenerates a new MOB tree 1015. Based on the desired number of trees,which may be stored or predetermined by the system or received as aninput from the user, the model may iteratively decrement the number ofremaining trees until every tree has been generated 1035. In someembodiments, once all the trees have been generated 1035 and eachdiscount rate applied to each tree 1030, the model may then aggregatethe data 1040 and output 1045 an indication of the ideal discount rate.

With reference to FIG. 11, another embodiment of the present inventionis shown. In this embodiment, the algorithm receives the original dataset 1100, receives promotion information 1105, and receives the desiredmodel information 1107 that may include a predetermined number ofdiscounts and a predetermined number of trees. The algorithm may thenproceed to generate a MOB trees. In order to generate a particulardecision tree, the model may split the original data into a training set1115 and a test set 1120.

The model may then develop a decision tree based on the training set1125. In some embodiments, the model then obtains predictions on thetest set 1130 by applying the predictor variables from the test set tothe decision tree 1130. The model may then determine the accuracy of thedecision tree using the R² value of the data 1135 or other similarmetric.

In some embodiments, there may optionally be a threshold for the model'saccuracy before the tree model is applied to a set of data. In someembodiments a tree model may be discarded if its R² value is below acertain threshold. For example, some embodiments may exclude somepercentage of tree models with the lowest model accuracy (e.g. thebottom 5%). The total number of predetermined trees may include treemodels that are thrown out such that a predetermined number of accuratemodels may be generated, and discarded models are not counted.Alternatively, in some embodiments, the total number of trees mayinclude the tree models that are discarded.

The model may then iteratively apply one or more discount rate 1140 fromthe set of predetermined discount rates. For each discount rate, themodel may compute the expected demand for the promotion at theparticular discount rate currently being analyzed 1145.

Once every discount rate has been applied 1150 to the promotioninformation for a given decision tree the process may continue 1155 andgenerates a new tree 1110. Based on the desired number of trees, themodel may iteratively decrement the number of remaining trees untilevery tree has been generated 1155. Once all the trees have beengenerated 1155 and the discount rates for each discount rate applied toeach tree 1150, the model may then aggregate the data 1160 and output1165 an indication of the ideal discount rate.

FIG. 12 shows an embodiment of a possible output presented for oneembodiment of the present invention. The graph shown in FIG. 12 may bean intermediate step in the output used to determine the ideal discountrate or it may be a final product for a user who wishes to see the priceelasticity of demand curve for the entire promotion at every discountrate. In some embodiments, the original price of the promotion ismultiplied by the discount rate and the demand, the total revenue for agiven promotion at a given discount rate is generated. Some embodimentsmay display the total predicted revenue for each discount rate or thetotal predicted revenue for the calculated, ideal discount rate. In someembodiments, the predicted demands 1210 for each discount rate may becomputed and a more simple display of an average demand or expecteddemand. In some embodiments, only an indication of an ideal discountrate may be displayed. One of ordinary skill in the art will appreciatethat any output a user desires relating to the ideal accepted value,ideal discount rate, and price elasticity of demand may be presented.

In some further embodiments, actual data points of demand 1215 may betaken either as part of the evaluation process using the test set, orthe actual data points 1215 may be acquired through real trials of thepromotion.

The plot in FIG. 12 shows a comparison of demand 1200 to discount rate1205. The demand predictions 1210 in FIG. 12 show a predicted demand foreach discount rate of the product with the bars showing the confidenceintervals 1210 for each discount rate. These predicted confidenceintervals 1210 may show the predicted error in each discount rate. Theconfidence intervals 1210 may be calculated during the evaluation andaggregation of the various demands for each discount rate as a result ofthe differences between the predictions of the various tree models. Theconfidence interval 1210 represents the range in which a predeterminedpercentage of the predicted results will fall. For example, someembodiments may represent a 95% confidence interval, meaning 95% of thedemand values are expected to fall within the depicted range. Thisembodiment illustrates the usefulness of multiple tree models to computean accurate value of the demand for each discount rate because a largenumber of trees can generate a better fit and a more accurate averagedemand for each discount rate. In some embodiments, a large number oftrees may be used, such as 400 tree models. In some embodiments, moretree models are always preferred in order to increase the accuracy ofthe overall model. In some further embodiments, the marginal benefit toaccuracy of adding an additional tree model to the overall model maydecrease after a certain number of models. In some embodiments, thetotal number of tree models may be limited by the available time ortechnical limitations of the computing device. One of ordinary skill inthe art will appreciate that a higher or lower number of trees may bechosen based on a desired fit of the model and the technical limitationsof the apparatus performing the calculations.

The style of the output may also depend on the user. For example, insome embodiments, the user is a promotion and marketing service. If thepromotion and marketing service desires a full accepted value vs. demandcurve, the system may output a full curve. If, however, the promotionand marketing service desires a simplified presentation of just theideal discount rate, the system may provide a text or graphical outputof the discount rate. In another embodiment, the provider may be theuser. In this embodiment, the provider inputs its promotion informationand receives an output indicating an ideal discount rate, an acceptedvalue vs demand curve, or any other desired output. Additionally, someembodiments of the present invention may be built in tools in othersystems, such as a spreadsheet, to calculate the ideal discount andprice elasticity of demand information for the user.

Computing Device Architecture

In some embodiments of the present invention, an apparatus, such as ademand module 100, aggregator module 115, tree generator module 110,leaf generator module 250, evaluation module 305, 310, or combinedevaluator module 315 may be embodied by a computing device. Thecomputing device may include or be associated with an apparatus 1300 asshown in FIG. 13. In this regard, the apparatus may include or otherwisebe in communication with a processor 1305, a memory device 1310, acommunication interface 1315 and a user interface 1320. As such, in someembodiments, although devices or elements are shown as being incommunication with each other, hereinafter such devices or elementsshould be considered to be capable of being embodied within the samedevice or element and thus, devices or elements shown in communicationshould be understood to alternatively be portions of the same device orelement.

In some embodiments, the processor 1305 (and/or co-processors or anyother processing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory device 1310 via a busfor passing information among components of the apparatus. The memorydevice may include, for example, one or more volatile and/ornon-volatile memories. In other words, for example, the memory devicemay be an electronic storage device (e.g., a computer readable storagemedium) comprising gates configured to store data (e.g., bits) that maybe retrievable by a machine (e.g., a computing device like theprocessor). The memory device may be configured to store information,data, content, applications, instructions, or the like for enabling theapparatus 1300 to carry out various functions in accordance with anexample embodiment of the present invention. For example, the memorydevice could be configured to buffer input data for processing by theprocessor. Additionally or alternatively, the memory device could beconfigured to store instructions for execution by the processor.

As noted above, the apparatus 1300 may configured to employ an exampleembodiment of the present invention. However, in some embodiments, theapparatus may be embodied as a chip or chip set. In other words, theapparatus may comprise one or more physical packages (e.g., chips)including materials, components and/or wires on a structural assembly(e.g., a baseboard). The structural assembly may provide physicalstrength, conservation of size, and/or limitation of electricalinteraction for component circuitry included thereon. The apparatus maytherefore, in some cases, be configured to implement an embodiment ofthe present invention on a single chip or as a single “system on achip.” As such, in some cases, a chip or chipset may constitute meansfor performing one or more operations for providing the functionalitiesdescribed herein.

The processor 1305 may be embodied in a number of different ways. Forexample, the processor may be embodied as one or more of varioushardware processing means such as a coprocessor, a microprocessor, acontroller, a digital signal processor (DSP), a processing element withor without an accompanying DSP, or various other processing circuitryincluding integrated circuits such as, for example, an ASIC (applicationspecific integrated circuit), an FPGA (field programmable gate array), amicrocontroller unit (MCU), a hardware accelerator, a special-purposecomputer chip, or the like. As such, in some embodiments, the processormay include one or more processing cores configured to performindependently. A multi-core processor may enable multiprocessing withina single physical package. Additionally or alternatively, the processormay include one or more processors configured in tandem via the bus toenable independent execution of instructions, pipelining and/ormultithreading.

In an example embodiment, the processor 1305 may be configured toexecute instructions stored in the memory device 1310 or otherwiseaccessible to the processor. Alternatively or additionally, theprocessor may be configured to execute hard coded functionality. Assuch, whether configured by hardware or software methods, or by acombination thereof, the processor may represent an entity (e.g.,physically embodied in circuitry) capable of performing operationsaccording to an embodiment of the present invention while configuredaccordingly. Thus, for example, when the processor is embodied as anASIC, FPGA or the like, the processor may be specifically configuredhardware for conducting the operations described herein. Alternatively,as another example, when the processor is embodied as an executor ofsoftware instructions, the instructions may specifically configure theprocessor to perform the algorithms and/or operations described hereinwhen the instructions are executed. However, in some cases, theprocessor may be a processor of a specific device configured to employan embodiment of the present invention by further configuration of theprocessor by instructions for performing the algorithms and/oroperations described herein. The processor may include, among otherthings, a clock, an arithmetic logic unit (ALU) and logic gatesconfigured to support operation of the processor. In an exampleembodiment, the processor may also include user interface circuitryconfigured to control at least some functions of one or more elements ofthe user interface 1320.

Meanwhile, the communication interface 1315 may be any means such as adevice or circuitry embodied in either hardware or a combination ofhardware and software that is configured to receive and/or transmit databetween apparatus 1300 and databases (not pictured). In this regard, thecommunication interface 1315 may include, for example, an antenna (ormultiple antennas) and supporting hardware and/or software for enablingcommunications wirelessly. Additionally or alternatively, thecommunication interface may include the circuitry for interacting withthe antenna(s) to cause transmission of signals via the antenna(s) or tohandle receipt of signals received via the antenna(s). For example, thecommunications interface may be configured to communicate wirelesslywith a display, such as via Wi-Fi, Bluetooth or other wirelesscommunications techniques. In some instances, the communicationinterface may alternatively or also support wired communication. Assuch, for example, the communication interface may include acommunication modem and/or other hardware/software for supportingcommunication via cable, digital subscriber line (DSL), universal serialbus (USB) or other mechanisms. For example, the communication interfacemay be configured to communicate via wired communication with othercomponents of the computing device.

The user interface 1320 may be in communication with the processor 1305,such as the user interface circuitry, to receive an indication of a userinput and/or to provide an audible, visual, mechanical, or other outputto a user. As such, the user interface may include, for example, akeyboard, a mouse, a joystick, a display, a touch screen display, amicrophone, a speaker, and/or other input/output mechanisms. In someembodiments, a display may refer to display on a screen, on a wall, onglasses (e.g., near-eye-display), in the air, etc. The user interfacemay also be in communication with the memory 1310 and/or thecommunication interface 1315, such as via a bus.

In one embodiment, a system to generate tree models may be providedherein. In some embodiments, a system that applies a promotion data anddiscount rates to one or more tree models may be provided. In otherembodiments, a system may be provided that both generates tree modelsand applies promotion data to the models. Some embodiments of the systemmay be configured to increase (or maximize) gross revenue or determineanother ideal discount rate by adjusting a discount rate or acceptedvalue for a promotion for each tree while collecting the resulting data.

In one example embodiment, the system is configured to provide at leastone of (1) more unit sales for a promotion; (2) higher bookings andgross revenue; (3) higher margins for popular promotions; and (4) morecommerce, for example, on the promotion and marketing service platform,all of which may determine the ideal discount rate and/or ideal acceptedvalue for the promotion and marketing service.

Regarding the inputs to the demand module, there are four main pieces.(1) Promotion Information: which may include a promotional value of thepromotion and one or more predictor variables for the promotion; (2)Discount Rates: one or more possible discount rates to consider indetermining the ideal discount rate, which may include an entire rangeof discounts (e.g. 0-50%) or a list of specific discount rates (e.g.10%, 20%, 30%) (note, however, that promotional value and discount ratemay be simplified and combined into one or more possible acceptedvalues); (3) MOB Trees: trees may be generated by the same system as thedemand module, or may be input from elsewhere; (4) Optional Information:any options for the user in generating and applying the models, such asrandom forest vs. standard bagging or sub-sampling vs. bootstrapping.

Regarding the inputs to the tree generation module, there are two mainpieces. (1) Original Data: a set of data for previous promotions thatmay include information about each promotion as described above; and (2)Desired Number of Trees: either an algorithm for determining a number oftrees to generate or a specific number of trees may be provided.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseembodiments of the invention pertain having the benefit of the teachingspresented in the foregoing descriptions and the associated drawings.Therefore, it is to be understood that the embodiments of the inventionare not to be limited to the specific embodiments disclosed and thatmodifications and other embodiments are intended to be included withinthe scope of the appended claims. Although specific terms are employedherein, they are used in a generic and descriptive sense only and notfor purposes of limitation.

1-57. (canceled)
 58. An apparatus comprising at least one processor andat least one memory having computer-coded instructions stored thereonthat, in execution with the at least one processor, configures theapparatus to: receive an original data set corresponding to a pluralityof predictor parameters; generate, based at least in part on theoriginal data set, a plurality of model-based decision trees, eachmodel-based decision tree comprising one or more branches, wherein eachbranch of the one or more branches is associated with a data modelconfigured based at least in part on a partitioned subset of theoriginal data set determined based on at least one instability parametercorresponding to each decision point in the model branch; apply aplurality of percentage differential data values to each decision treeof the plurality of predictor parameters to generate a set of modeloutput data; aggregate the set of model output data to generatepreferred output data associated with the plurality of percentagedifferential data values and the set of model output data; and output arepresentation of the preferred output data to a computing device. 59.The apparatus according to claim 58, wherein to generate the pluralityof model-based decision trees, the apparatus is configured to:recursively perform: in an instance where a decision point of the one ormore decision points is determined not to comprise a leaf node:determine, for a decision point of the one or more decision points, aninstability parameter from one or more predictor parameters of theplurality of the predictor parameters; identify at least a first subsetof a source data set of the original data set based on the instabilityparameter, the first subset of the source data set corresponding to afirst sub-branch from the decision point, and a second subset of thesource data set of the original data set based on the instabilityparameter, the second subset of the source data set corresponding to asecond sub-branch from the decision point; and in an instance where adecision point of the one or more decision points is determined tocomprise the leaf node: generate the data model corresponding to theleaf node based on the source data set.
 60. The apparatus according toclaim 58, wherein the plurality of model-based decision trees eachcomprise at least one decision point associated with splitting at leasta portion of the original data set based on a random subset of theplurality of predictor parameters.
 61. The apparatus according to claim58, wherein the plurality of model-based decision trees each comprise atleast one decision point associated with splitting at least a portion ofthe original data set based on a highest instability parameter of theplurality of predictor parameters.
 62. The apparatus according to claim58, wherein to output the representation of the preferred output data tothe computing device, the apparatus is configured to: cause rendering,to the computing device, of a user interface comprising at least thepreferred output data.
 63. The apparatus according to claim 58, whereinthe representation of the preferred output data comprises a preferredpercentage differential data value of the plurality of preferredpercentage differential data value.
 64. The apparatus according to claim58, wherein to aggregate the model output data, the apparatus isconfigured to: generate a plurality of aggregated output data valuescorresponding to the plurality of percentage differential data valuesby: for each particular percentage differential data value of theplurality of percentage differential data values, aggregating a subsetof model output data from the set of model output data, the subset ofmodel output data comprising output from each model-based decision treeof the plurality of model-based decision trees for the particularpercentage differential data value of the plurality of percentagedifferential data values to generate an aggregated output data valuecorresponding to the particular percentage differential data value;combine the plurality of aggregated output data values to generate thepreferred output data; and output a preferred percentage differentialdata value of the plurality of preferred percentage differential datavalue and one or more of the plurality of aggregated output data values.65. A computer-implemented method comprising: receiving an original dataset corresponding to a plurality of predictor parameters; generating,based at least in part on the original data set, a plurality ofmodel-based decision trees, each model-based decision tree comprisingone or more branches, wherein each branch of the one or more branches isassociated with a data model configured based at least in part on apartitioned subset of the original data set determined based on at leastone instability parameter corresponding to each decision point in themodel branch; applying a plurality of percentage differential datavalues to each decision tree of the plurality of predictor parameters togenerate a set of model output data; aggregating the set of model outputdata to generate preferred output data associated with the plurality ofpercentage differential data values and the set of model output data;and outputting a representation of the preferred output data to acomputing device.
 66. The computer-implemented method according to claim65, wherein generating the plurality of model-based decision treescomprises: recursively performing: in an instance where a decision pointof the one or more decision points is determined not to comprise a leafnode: determining, for a decision point of the one or more decisionpoints, an instability parameter from one or more predictor parametersof the plurality of the predictor parameters; identifying at least afirst subset of a source data set of the original data set based on theinstability parameter, the first subset of the source data setcorresponding to a first sub-branch from the decision point, and asecond subset of the source data set of the original data set based onthe instability parameter, the second subset of the source data setcorresponding to a second sub-branch from the decision point; and in aninstance where a decision point of the one or more decision points isdetermined to comprise the leaf node: generating the data modelcorresponding to the leaf node based on the source data set.
 67. Thecomputer-implemented method according to claim 65, wherein the pluralityof model-based decision trees each comprise at least one decision pointassociated with splitting at least a portion of the original data setbased on a random subset of the plurality of predictor parameters. 68.The computer-implemented method according to claim 65, wherein theplurality of model-based decision trees each comprise at least onedecision point associated with splitting at least a portion of theoriginal data set based on a highest instability parameter of theplurality of predictor parameters.
 69. The computer-implemented methodaccording to claim 65, wherein outputting the representation of thepreferred output data to the computing device comprises: causingrendering, to the computing device, of a user interface comprising atleast the preferred output data.
 70. The computer-implemented methodaccording to claim 65, wherein the representation of the preferredoutput data comprises a preferred percentage differential data value ofthe plurality of preferred percentage differential data value.
 71. Thecomputer-implemented method according to claim 65, wherein aggregatingthe model output data comprises: generating a plurality of aggregatedoutput data values corresponding to the plurality of percentagedifferential data values by: for each particular percentage differentialdata value of the plurality of percentage differential data values,aggregating a subset of model output data from the set of model outputdata, the subset of model output data comprising output from eachmodel-based decision tree of the plurality of model-based decision treesfor the particular percentage differential data value of the pluralityof percentage differential data values to generate an aggregated outputdata value corresponding to the particular percentage differential datavalue; and combining the plurality of aggregated output data values togenerate the preferred output data.
 72. A computer program productcomprising a non-transitory computer readable medium having computerprogram instructions stored therein that, in execution with at least oneprocessor, are configured for: receiving an original data setcorresponding to a plurality of predictor parameters; generating, basedat least in part on the original data set, a plurality of model-baseddecision trees, each model-based decision tree comprising one or morebranches, wherein each branch of the one or more branches is associatedwith a data model configured based at least in part on a partitionedsubset of the original data set determined based on at least oneinstability parameter corresponding to each decision point in the modelbranch; applying a plurality of percentage differential data values toeach decision tree of the plurality of predictor parameters to generatea set of model output data; aggregating the set of model output data togenerate preferred output data associated with the plurality ofpercentage differential data values and the set of model output data;and outputting a representation of the preferred output data to acomputing device.
 73. The computer program product according to claim72, wherein to generate the plurality of model-based decision trees, thecomputer program product is configured for: recursively performing: inan instance where a decision point of the one or more decision points isdetermined not to comprise a leaf node: determining, for a decisionpoint of the one or more decision points, an instability parameter fromone or more predictor parameters of the plurality of the predictorparameters; identifying at least a first subset of a source data set ofthe original data set based on the instability parameter, the firstsubset of the source data set corresponding to a first sub-branch fromthe decision point, and a second subset of the source data set of theoriginal data set based on the instability parameter, the second subsetof the source data set corresponding to a second sub-branch from thedecision point; and in an instance where a decision point of the one ormore decision points is determined to comprise the leaf node: generatingthe data model corresponding to the leaf node based on the source dataset.
 74. The computer program product according to claim 72, wherein theplurality of model-based decision trees each comprise at least onedecision point associated with splitting at least a portion of theoriginal data set based on a random subset of the plurality of predictorparameters.
 75. The computer program product according to claim 72,wherein the plurality of model-based decision trees each comprise atleast one decision point associated with splitting at least a portion ofthe original data set based on a highest instability parameter of theplurality of predictor parameters.
 76. The computer program productaccording to claim 72, wherein to output the representation of thepreferred output data to the computing device, the computer programproduct is configured for: causing rendering, to the computing device,of a user interface comprising at least the preferred output data. 77.The computer program product according to claim 72, wherein to aggregatethe model output data, the computer program product is configured for:generating a plurality of aggregated output data values corresponding tothe plurality of percentage differential data values by: for eachparticular percentage differential data value of the plurality ofpercentage differential data values, aggregating a subset of modeloutput data from the set of model output data, the subset of modeloutput data comprising output from each model-based decision tree of theplurality of model-based decision trees for the particular percentagedifferential data value of the plurality of percentage differential datavalues to generate an aggregated output data value corresponding to theparticular percentage differential data value; and combining theplurality of aggregated output data values to generate the preferredoutput data.